package com.gxkj.projects.myshopx.utils;


import com.gxkj.common.utils.MyPinYinUtil;
import com.gxkj.projects.myshopx.enums.GoodsImgType;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.Calendar;

public class MyFileUtils {

    //将文件上传到本地某个目录
    public  static void upload2Loacl( MultipartFile multipartFile,String targetFilePath) throws IOException {
        if(!multipartFile.isEmpty()){
            File localFile = new File(targetFilePath);
            File parentFile = localFile.getParentFile();
            if(!parentFile.exists()){
                parentFile.mkdirs();
            }
            multipartFile.transferTo(localFile);
        }

    }
    // 生成文件名称
//    public static String generateFileName(MultipartFile multipartFile){
//        Calendar calendar = Calendar.getInstance();
//        int currentYear = calendar.get(Calendar.YEAR);
//        int currentMonth = calendar.get(Calendar.MONTH);
//        int currentDay = calendar.get(Calendar.DATE);
//        String originalFileName = multipartFile.getOriginalFilename();
//        long nowLong = calendar.getTimeInMillis();
//        String pingyin = com.gxkj.common.utils.MyPinYinUtil.getPingYin(originalFileName);
//        return String.format("%d/%d/%d/%d_%s",currentYear,currentMonth,currentDay,nowLong,pingyin);
//    }

    public static String generateImgName(MultipartFile multipartFile, GoodsImgType type , String goodsId){
        String originalFileName = multipartFile.getOriginalFilename();
        String pingyin = MyPinYinUtil.getPingYin(originalFileName);
        return String.format("%s_%s_%s",type.toString(),goodsId,pingyin);
    }

    /**
     * 获取文件后缀
     * @param uploadImg
     * @return
     */
    public static String getFilePostfix(MultipartFile uploadImg){
        String fileName = uploadImg.getName();
        if(fileName.contains(".")){
            String postfix= fileName.substring(fileName.lastIndexOf(".")+1);
            return postfix ;
        }else {
            return "" ;
        }


    }


//    %s   字符串类型          "mingrisoft"
//    %c   字符类型            'm'
//    %b   布尔类型            true
//    %d   整数类型（十进制）  99
//    %x   整数类型（十六进制） FF
//     %o  整数类型（八进制）  77
//     %f  浮点类型            99.99
//     %a   十六进制浮点类型   FF.35AE
//     %e  指数类型            9.38e+5
//     %g  通用浮点类型（f和e类型中较短的）
//     %h   散列码
//     %%  百分比类型           ％
//     %n  换行符
//     %tx  日期与时间类型（x代表不同的日期与时间转换符
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        int currentYear = calendar.get(Calendar.YEAR);
        int currentMonth = calendar.get(Calendar.MONTH);
        int currentDay = calendar.get(Calendar.DATE);
        String originalFileName = "图像.jpg";
        long nowLong = calendar.getTimeInMillis();
        String pingyin = MyPinYinUtil.getPingYin(originalFileName);
        String s =  String.format("%d/%d/%d/%d_%s",currentYear,currentMonth,currentDay,nowLong,pingyin);
        System.out.println(s);
    }
}
